package com.sws.weixin.entity;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.Data;

import java.util.LinkedHashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

@Data
public class TemplateInfo {
    @JsonProperty("template_id")  // 关键：映射 JSON 中的 template_id
    private String templateId;     // 数据库字段名 template_id

    @JsonProperty("title")
    private String title;

    @JsonProperty("primary_industry")
    private String primaryIndustry;

    @JsonProperty("deputy_industry")
    private String deputyIndustry;

    @JsonProperty("content")
    private String content;

    @JsonProperty("example")
    private String example;

    // 新增方法：将 content 转换为目标 JSON 字符串

    // 新增方法：将 content 转换为目标 JSON 字符串（平级结构）

    // 新增方法：将 content 转换为目标 JSON 字符串
    public String generateContentJson() {
        Pattern pattern = Pattern.compile("\\{\\{([^}]+)\\.DATA\\}\\}");
        Matcher matcher = pattern.matcher(this.content);
        Map<String, Map<String, String>> dataMap = new LinkedHashMap<>();

        while (matcher.find()) {
            String keyword = matcher.group(1);
            Map<String, String> field = new LinkedHashMap<>();
            field.put("value", "默认值");
            field.put("color", "#173177");
            dataMap.put(keyword, field);
        }

        Map<String, Object> result = new LinkedHashMap<>();
        result.put("data", dataMap);

        try {
            return new ObjectMapper().writeValueAsString(result);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
            return "{}";
        }
    }
}